# 
# Created with PyCharm.
# Description :
# User: jiume
# Date: 2024-09-04
# Time: 16:00
#
import random

# # 列表的排序：
#
# # 1、使用sort方法
# list = [10,4,6,2,9,8]
# print(list)
# # 升序
# list.sort()
# print(list)
# # 降序
# list.sort(reverse=True)
# print(list)
# # 还可以指定规则排序
# list = ['apple','banana','Cat','dog']
# print(list)
# list.sort() # 默认排序规则下的升序（字符串是按照ASCII码值来排序的）
# print(list)
# list.sort(key=str.lower) # 忽略大小写的排序（全部先转换为小写）
# print(list)
#
# # 2、使用sorted函数
# asc_list = sorted(list) # 这个函数会产生一个新的对象
# print('原列表',list)
# print('新列表',asc_list) # 排序前后原列表对象未发生变化
# desc_list = sorted(list, reverse=True)
# print('原列表',list)
# print('新列表',desc_list) # 排序前后原列表对象未发生变化


# # 列表生成式
# # 前面的i是最终填入列表的数，而后面的for循环是表示循环几次
# list = [i for i in range(10)]
# print(list)
#
# list = [i*i for i in range(10)]
# print(list)
#
# # 循环10次，每一次都生成一个随机数作为列表的元素
# list = [random.randint(1, 100) for i in range(10)]
# print(list)
#
# # 奇数
# list = [i for i in range(10) if i % 2 == 1]
# print(list)


# # 二维列表：一维列表中又有一个一维列表
# list = [
#     [1,2,3,4,5],
#     [6,7,8,9,10],
#     [5,4,6,3,7]
# ]
# # 遍历二维列表
# for i in list: # i是一维列表
#     for j in i: # j是一维列表中的元素
#         print(j,end='\t')
#     print()
# # 二维列表的创建：使用列表生成式
# list = [[j for j in range(5)] for i in range(4)]
# print(list)


# # 元组的创建
# t = ('Hello', 'World', [30, 40, 50], 100) # 元组中元素的类型是不限定的
# print(t)
# # 把字符串中每个字符都当成元组的一个元素
# t = tuple('Hello World')
# print(t)
# # 使用内置函数tuple创建元组时，其类型只能是一种，不能有多种类型
# # t = tuple([30,40,50], 100, 'pyhton')
# t = tuple([30,40,50,60]) # 同样列表当中每个元素都被当成元组的一个元素
# print(t)
# t = tuple(['Hello', 10])
# print(t)
#
# # 序列的操作方法也是适合元组的，因为元组也是序列的一种
#
# # 注意：当元组中只有一个元素时，也要加上','
# t = (10)
# print(t,type(t))
# t = (10,)
# print(t,type(t))

# # 元组的遍历
# t = (10,20,30,40)
# # 1、for循环
# for i in t:
#     print(i,end='\t')
# print()
# # 2、for+range
# for i in range(len(t)): # 这里得到的i是下标
#     print(t[i],end='\t')
# print()
# # 3、enumerate函数
# for i,j in enumerate(t): # i是序号，j是值（i可以发生改变，但j不行）
#     print(i,'--->',j)